const axios = require('https://unpkg.com/axios/dist/axios.min.js')


//config为传入的基本信息
export function request(config) {
  //1.
  const instance1 = axios.create({
    baseURI: 'https://cn.vuejs.org/js',
    timeout: 5000,
    headers : {

    }
  })
  //2.axios拦截器
  //2.1请求拦截
  instance1.interceptors.request.use(config=>{
    console.log(config);
    //比如config中的信息不符合服务器的要求
    //比如每次发送网络请求时，都希望在页面上显示一个请求的图标
    //某些网络请求(比如登录(token))，必须携带一些特殊的信息
    //拦截器必须要把传过来的信息返回出去
    return config
  },err=>{
    console.log(err);
  });//拦截请求
  instance1.interceptors.response.use(result=>{
    console.log(result);
    return result.data;
  },err=>{
    console.log(err)
  });//拦截响应

  //3.
  return instance1(config)

  // 推荐使用promise方式
  // return new Promise((resolve, reject) => {
  //   //1.创建axios实例
  //   const instance1 = axios.create({
  //     baseURI: 'https://cn.vuejs.org/js',
  //     timeout: 5000
  //   })
  //   //2.发送真正的网络请求
  //   instance1(config)
  //       .then(res => {
  //         resolve(res)
  //       }).catch(res => {
  //     reject(res)
  //   })
  // })
}

// export function request(config, success, error) {
//   //1.创建axios实例
//   const instance1 = axios.create({
//     baseURI: 'https://cn.vuejs.org/js',
//     timeout: 5000
//   })
// //2.发送真正的网络请求
//   instance1(config).then(res => {
//     success(res)//成功就回调给success函数
//   }).catch(res => {
//     error(res)//失败就回调给error函数
//   })
//   }
// }

